const inquirer = require('inquirer');
const path = require('path');
const fs = require('fs');
const copyAndWrite = require('../../utils/copy-or-write.js');
const checkExists = require('../../utils/check-exists');
const ora = require('ora');
const chalk = require('chalk');
const questions = [
  // {
  //   type: 'confirm',
  //   name: 'showTitle',
  //   message: '是否显示标题',
  //   default: true
  // },
  // {
  //   type: 'input',
  //   message: '请输入模块标题',
  //   name: 'indexTitle',
  //   when(answers) {
  //     return answers.showTitle === true;
  //   },
  //   default: '模块Title'
  // },
  // {
  //   type: 'confirm',
  //   name: 'showHbButtons',
  //   message: '是否展示顶部操作栏',
  //   default: true
  // },
  // {
  //   type: 'confirm',
  //   name: 'showHbSearch',
  //   message: '是否展示表格查询项',
  //   default: true
  // },
  // {
  //   type: 'confirm',
  //   name: 'showHbPagination',
  //   message: '是否展示表格翻页功能',
  //   default: true
  // },
  // {
  //   type: 'confirm',
  //   name: 'showDetail',
  //   message: '是否有表格详情页',
  //   default: true
  // },
  // {
  //   type: 'confirm',
  //   name: 'showDelete',
  //   message: '是否有表格删除功能',
  //   default: true
  // },
  // {
  //   type: 'confirm',
  //   name: 'checkMore',
  //   message: '是否展示表格多选',
  //   default: true
  // },
  // {
  //   type: 'confirm',
  //   name: 'showHbDialog',
  //   message: '是否有弹框',
  //   default: true
  // },
  // {
  //   type: 'list',
  //   message: '新增和修改类型:',
  //   name: 'addAndEditType',
  //   when(answers) {
  //     return answers.showHbDialog === true;
  //   },
  //   choices: [
  //     {
  //       key: 0,
  //       name: '弹框',
  //       value: 'dialog'
  //     },
  //     {
  //       key: 1,
  //       name: '页面',
  //       value: 'page'
  //     }
  //   ]
  // }
];

const promptList = [
  {
    type: 'rawlist',
    message: '选择模块技术栈:',
    name: 'type',
    choices: ['vue3+ts+vite+element-plus', 'react+ts+vite+ant-design']
  }
];
module.exports = async function (name, options) {
  const targetAir = path.join(process.cwd(), name);
  // console.log('--------', targetAir, fs.existsSync(targetAir));
  const res = await checkExists(name, options);
  console.log('res-----', res);
  if (!res) {
    inquirer
      .prompt(promptList)
      .then(async (choice) => {
        console.log('choice--', name, choice.type);
        const spinner = ora('waiting for add  module');
        spinner.start();
        await copyAndWrite(name, choice.type);
        setTimeout(() => {
          spinner.succeed();
          console.log(`\r\nSuccessfully add module ${chalk.cyan(name)} `);
        }, 100);
      })
      .catch((error) => {
        console.log(error);
      });
  }
};
